package com.zrrd.learn.chapter08.Score;

import com.zrrd.learn.chapter04.Array;

import java.util.Arrays;

/**
 * 运动员类
 *
 * @author asus
 * @version 1.0
 * @date 2023/8/7 8:15
 */
public class sportsman {

    /**
     * 给你一个长度为 n 的整数数组 score ，其中 score[i] 是第 i 位运动员在比赛中的得分。所有得分都 互不相同 。
     * 运动员将根据得分决定名次 ，其中名次第 1 的运动员得分最高，名次第 2 的运动员得分第 2 高，依此类推。运动员的名次决定了他们的获奖情况：
     * 名次第 1 的运动员获金牌 "Gold Medal" 。 名次第 2 的运动员获银牌 "Silver Medal" 。 名次第 3 的运动员获铜牌 "Bronze Medal" 。
     * 从名次第 4 到第 n 的运动员，只能获得他们的名次编号（即，名次第 x 的运动员获得编号 "x"）。 使用长度为 n 的数组 answer 返回获奖，其中 answer[i] 是第i位运动员的获奖情况。
     * <p>
     * <p>
     * 要求：
     * 给出一组运动员成绩，输出对应运动员获奖情况的数组。
     * for循环数组，求出最大值，找到最大值所在位置，以此类推，直到遍历完数组。
     */

    public static void sport() {
        int[] a={67,90,65,43,55,68,97};
        String[] desc ={"Gold Medal","Silver Medal","Bronze Medal"};
        int[][] res = new int[a.length][2];
        for (int i = 0; i < a.length; i++) {
            //将分数值放在第一列，分数值下标放在第二列
            res[i][0] =a[i];
            res[i][1]=i;
        }
        String[] answer = new String[a.length];
        //降序排序
//        Arrays.sort(a);
//        int[] desca=new int[a.length];
//        for (int i = 0; i < a.length; i++) {
//            desca[i] = a[a.length-1-i];
//        }
        Arrays.sort(res,(x,y)->y[0] - x[0]);
        //判断输出
        for (int i = 0; i < a.length; i++) {
            if(i<3){
                answer[res[i][1]]=desc[i];
            }else{
                answer[res[i][1]]=String.valueOf(i+1);
            }
        }
        System.out.println(Arrays.toString(answer));

    }

    public static void main(String[] args) {

        sport();


    }


}
